//
//  HJChatUserManagerProtocol.h
//  KaiChat
//
//  Created by lx on 2023/10/20.
//

#import <Foundation/Foundation.h>
#import "HJChatUserModel.h"
#import "HJChatFriendModel.h"
#import "HJUserApplyModel.h"

NS_ASSUME_NONNULL_BEGIN

@protocol HJChatUserManagerProtocol <NSObject>

- (void)getFriendListsComplete:(void (^)( NSArray <HJChatFriendModel *>* _Nullable datas))complete;
- (void)loadFriendInfoWithUserId:(NSString *)userId complete:(void (^)(HJChatFriendModel * _Nullable model))complete;

- (void)queryFriendInfoWithUserId:(NSString *)userId complete:(void (^)(HJChatFriendModel * _Nullable model))complete;
- (void)queryUserInfoWithUserId:(NSString *)userId complete:(void (^)(HJChatUserModel * _Nullable model))complete;

- (void)loadUserInfoWithUserId:(NSString *)userId complete:(void (^)(HJChatUserModel * _Nullable model))complete;
- (void)loadUserApplyListDataComplete:(void (^)(NSArray <NSArray <HJUserApplyModel *>*>* _Nullable datas, HJLoadType loadType))complete;
- (void)sendApplyAddFriendWithUserId:(NSString *)userId complete:(void (^)(NSError * _Nullable error))complete;
- (void)handleFriendAddWithUserId:(NSString *)userId accept:(BOOL)accept complete:(void (^)(NSString * _Nullable sessionId))complete;
- (void)searchFridendWithKeyword:(NSString *)keyword complete:(void (^)(HJChatUserModel * _Nullable model))complete;
- (void)queryFriendInfoByFriendId:(NSString *)friendId completion:(void (^)(HJChatFriendModel * _Nullable userModel))completion;
- (HJChatFriendModel *)queryFriendInfoByFriendId:(NSString *)friendId;

- (void)queryUserInfoByFriendId:(NSString *)friendId completion:(void (^)(HJChatUserModel * _Nullable userModel))completion;
- (HJChatUserModel *)queryUserInfoByUserId:(NSString *)userId;
- (HJChatUserModel *)queryUserInfoByUid:(NSString *)uid;
- (void)searchFriendByKeyword:(NSString *)keyword completion:(void (^)( NSArray <HJChatFriendModel *>* _Nullable datas))completion;
- (void)loadApplyCountComplete:(void (^__nullable)(NSInteger count))complete;
- (void)clearApplyCountComplete:(void (^__nullable)(NSError *error))complete;

 
@end

NS_ASSUME_NONNULL_END
